package com.netflix.appinfo;

import com.google.inject.ImplementedBy;

import java.util.Map;

@ImplementedBy(CloudInstanceConfig.class)
public interface EurekaInstanceConfig {

    String getInstanceId();

    String getAppname();

    String getAppGroupName();

    boolean isInstanceEnabledOnit();

    int getNonSecurePort();

    int getSecurePort();

    boolean isNonSecurePortEnabled();

    boolean getSecurePortEnabled();

    int getLeaseRenewalIntervalInSeconds();

    int getLeaseExpirationDurationInSeconds();

    String getVirtualHostName();

    String getSecureVirtualHostName();

    String getASGName();

    String getHostName(boolean refresh);

    Map<String, String> getMetadataMap();

    DataCenterInfo getDataCenterInfo();

    String getIpAddress();

    String getStatusPageUrlPath();

    String getStatusPageUrl();

    String getHomePageUrlPath();

    String getHomePageUrl();

    String getHealthCheckUrlPath();

    String getHealthCheckUrl();

    String getSecureHealthCheckUrl();

    String[] getDefaultAddressResolutionOrder();

    String getNamespace();
}
